1. Technical Field
The invention relates to the handling of data transfers between components of a computer system, and has particular application for improvement of contemporary multimedia functions.
2. Problem Solved
In contemporary computer systems, transfers of data between processor or memory subsystems and peripheral devices, generally have been tightly controlled by the processor subsystem. Typically, each peripheral device receives a command block from the processor subsystem initiating a single data transfer operation between the device and a predefined part of the memory subsystem, performs the operation, interrupts the processor subsystem to report the concluding status of the operation, and then waits for another command from the processor subsystem.
A problem in this respect is that operations requiring movement of large volumes of data (hereafter "data streams" encompassing multiple block lengths) between buffer spaces in the memory subsystem and multiple peripheral devices, interruption handling operations of the processor tend to degrade efficiency (reduce the rate of data throughput). This effect is especially pronounced in multimedia systems wherein for example audio and video components of a "long" motion picture (e.g. one taking over an hour to present) are stored electronically on a mass medium (e.g. CD-ROM)in a compressed and possibly encrypted form, and processed by peripheral devices (for decompression and/or decryption) before being applied to speaker and display monitor components of the system.
In order to use buffer space in the memory subsystem efficiently, the processor would segment the process relative to each device into many commands individually defining the handling of small blocks of data (blocks whose lengths are orders of magnitude shorter than the length of the aggregate data stream that is to be processed), and monitor status of each block operation (via interrupt handling) before advancing the process. Assuming that the memory buffer spaces allocated for individual block transfers are of reasonable size, the latency/delay introduced by such status monitoring actions is difficult to accommodate.
The difficulty is compounded when the block handling processes have synchronism restrictions; e.g. restrictions requiring sound and picture data of blocks to be applied synchronously at respective speaker and display destinations. It is further compounded by the number of devices sequentially handling the data. Thus, for example, data that is processed successively by four devices (e.g. loaded into memory buffers by a first device, decompressed by a second device, decrypted by a third device, and routed to a destination by a fourth device) would encounter much more delays in processor interrupt handling than data that is handled successively by only one or two devices.
The present invention seeks to provide a more efficient mechanism for handling such data stream functions; i.e. a mechanism which has less latencies associated with processor interrupt handling than contemporary systems and therefore can use smaller memory buffers between units.